package JsonInterface.test.udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class Tudp {
    public static void main(String[] args) {
        String ipAddress = "zkp51udp.zhukai.cn"; // 目标 IP 地址
        //String ipAddress = "121.9.249.60"; // 目标 IP 地址
        int port = 20003; // 目标端口

        // 要发送的十六进制字符串
        String hexMessage = "1111"; // "Hello World!" 的十六进制表示

        try {
            // 将十六进制字符串转换为字节数组
            byte[] messageBytes = hexStringToByteArray(hexMessage);

            // 创建 UDP 套接字
            DatagramSocket socket = new DatagramSocket();

            // 创建数据包
            DatagramPacket packet = new DatagramPacket(messageBytes, messageBytes.length, InetAddress.getByName(ipAddress), port);

            // 发送数据包
            socket.send(packet);

            System.out.println("消息已发送到 " + ipAddress + ":" + port);
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 将十六进制字符串转换为字节数组
    private static byte[] hexStringToByteArray(String s) {
        int len = s.length();
        byte[] data = new byte[len / 2];
        for (int i = 0; i < len; i += 2) {
            data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
                    + Character.digit(s.charAt(i + 1), 16));
        }
        return data;
    }

}
